// src/utils/http.js
import axios from "axios";
import { ElMessage } from "element-plus";

// 创建 axios 实例
const instance = axios.create({
  baseURL: "http://localhost:5001", // 基础请求地址，可根据需要修改
  timeout: 5000, // 请求超时时间
  headers: {
    "Content-Type": "application/json",
  },
});

// 请求拦截器
instance.interceptors.request.use(
  (config) => {
    // 在请求头中添加 token（如有需要）
    const token = localStorage.getItem("token");
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  (error) => {
    // 处理请求错误
    return Promise.reject(error);
  }
);

// 响应拦截器
instance.interceptors.response.use(
  (response) => {
    // 直接返回数据部分
    const { data } = response;
    if (data.code !== 200) {
      // 根据后端返回的 code 处理错误信息
      ElMessage.error(data.message || "请求失败");
      return Promise.reject(data);
    }
    return data;
  },
  (error) => {
    // 处理网络或服务端错误
    ElMessage.error(error.response?.data?.message || "网络请求错误");
    return Promise.reject(error);
  }
);

export default instance;
